<!DOCTYPE html>
<head>
	<title>splice filter</title>
	<meta charset="utf-8" />
</head>
<body>

<script type="text/javascript">
	// splice(index,len,[item]) 改变原是数组（替换\添加\删除数组内某\多个值）
	// index -> 数组下标开始	len -> 删除\替换的长度	item -> 替换的值,删除为空
	var arr = [{'a':0},{'a':4},{'a':2},{'a':3},{'a':4},{'a':5}];
	arr.map((item,index) => {
		if (item.a > 3) {
			arr.splice(index,1)
		}
	})
	console.log(arr)
	// console.log(JSON.stringify(arr))  //typeof() -> string
	// splice删除后数组的长度会变化,下标也就跟着变化,相邻的两个数据就会跳过原下标的3的位置导致删除不掉{'a':5}

	// filter():参数是一个函数，所有数组成员依次执行该函数，返回结果为true的成员组成一个新数组返回。该方法不会改变原数组。
	arrFilter = arr.filter((items) => {
		// console.log(items) 		//{"a":0},{"a":2},{"a":3},{"a":5}
		if (items.a > 3) {
			// console.log(items)  // {a: 5}
		} else {
			return items
		}
		// return( items.a <= 3)
	})
	console.log(arrFilter)	//filter过滤大于4的方法

	// splice删除有误,filter过滤正确



	// map()方法返回一个由原数组中每个元素调用一个指定的方法后返回的值组成的一个新数组。
	// map()方法就是一种数组的映射,[].map(callback,[thisObject]) callback=function(value,index,array){}
	var arrM = [{'a':0,'b':'a'},{'a':1,'b':'b'},{'a':2,'b':'c'},{'a':3,'b':'d'}];
	arrMap = arrM.map((value,index) => {
		// return JSON.stringify(value)+'-'+index
		return value
	})
	console.log(arrMap)
	arrMapb = arrM.map((v,i) => {
		return v.b
	})
	var arrStrb = arrMapb.join('-') // return string
	// console.log(arrStrb)
	console.log(arrMapb)

	// stringify : object -> string 
	// parse : string -> object

	// indexOf():返回指定元素在数组中出现的位置,如果没有出现则返回-1
	// toString():返回数组的字符串形式
	// join():以参数作为分隔符,将所有数组成员组成一个字符串返回。如果不提供参数,默认用逗号分隔
	// slice():用于截取原数组的一部分，返回一个新数组，原数组不变。
		// slice(start,end) start - (起始位置,从0开始)  end - (终止位置,不包括该位置的元素)
		// 如果省略第二个参数，则一直返回到原数组的最后一个成员。
	// sort():对数组成员进行排序，默认是按照字典顺序排序。排序后，原数组将被改变。
		// sort方法不是按照大小排序，而是按照对应字符串的字典顺序排序。也就是说，数值会被先转成字符串，再按照字典顺序进行比较，所以100排在11的前面。
	var arrNums = [11,111,100]
	console.log(arrNums.sort()) //非数字大小排序 [100,11,111]
	console.log(arrNums.sort(function (a,b) {
		// return (a - b)	// [11, 100, 111] 
		return (b - a)	// [111, 100, 11]
	}))

	var arrAge = [
		{'n':'aaa','age':18},
		{'n':'bbb','age':24},
		{'n':'ccc','age':15}
	]	
	var	sortAge = arrAge.sort(function (a,b) {
		return a.age - b.age
	})
	// [{'n':'ccc','age':15},{'n':'aaa','age':18},{'n':'bbb','age':24}]
	// console.log(sortAge)

</script>

</body>
</html>